#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import math
#定义一个函数
def my_abs(x):
	if not isinstance(x,(int,float)):
		raise TypeError('wrong type')
	if x>=0:
		reruen x
	else:
		return -x

#函数返回多个值
def move(x,y,step,angle=0):
	newx = x + step*math.cos(angle)
	newy = y - step*math.sin(angle)
	return newx,newy
x,y = move(100,100,60,math.pi/6)

#位置参数
#默认参数，默认参数必须指向不变对象
#可变参数，传入的参数个数可变,可变参数在函数调用时自动组装为一个tuple
def cal(*numbers):
	sum = 0;
	for n in numbers:
		sum = sum + n*n
	return sum
cal(1,2)
nums = [1,2,3]
cal(*nums)
#关键字参数,允许你传入0个或任意个含参数名的参数，这些关键字参数在函数内部自动组装为一个dict
def person(name,age,**kw):
	print('name:',name,'age:',age,'other:',kw)
person('bob',12)
person('bob',12,city='Beijing')
person('bob',12,gender='M',job='engineer')
extra = {'city': 'Beijing', 'job': 'Engineer'}
person('Jack', 24, **extra)

